package com.imc.platform.base.category.dao;

import com.imc.platform.base.category.pojo.Category;
import com.imc.platform.base.menu.pojo.Menu;
import com.imc.platform.base.role.pojo.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.cache.annotation.Cacheable;

import java.util.List;
import java.util.Map;

/*
* 类描述：分类管理Mapper
* 开发者：YT
* 创建日期：2018/9/14 17:06
*/
@Mapper
public interface ICategoryMapper {
    /*
    * YT  2018/9/14 17:07
    * 方法描述：查询分类列表
    */
    List<Category> queryCategoryList(@Param("qryCategoryName")String qryCategoryName,@Param("qryCategoryType") String qryCategoryType);

    /**
     *QY 2018/9/10 15:39
     *方法描述：查询所有用户详情
     **/
    @Select("select * from t_category where cateType=#{cateType} order by id asc")
    List<Map> queryCategoryAll(@Param("cateType")String cateType,@Param("categoryId")String categoryId);

    /**
     *QY 2018/9/10 15:39
     *方法描述：查询所有用户详情
     **/
    @Select("select * from t_category where cateType=#{cateType} and id=#{categoryId} order by id asc")
    List<Map> queryCategoryAll1(@Param("cateType")String cateType,@Param("categoryId")String categoryId);

    /**
     *QY 2018/10/08 15:41
     *方法描述：根据分类名称和分类类别查询分类信息
     **/
    List<Category> queryCategoryByTypeOrTypeName(@Param("qryCategoryName")String qryCategoryName,@Param("qryCategoryType") String qryCategoryType);

    /*
    * YT  2018/9/14 17:07
    * 方法描述：修改分类状态
    */
    int updateState(@Param("state") String state, @Param("roleId") String roleId);

    /*
    * YT  2018/9/14 17:08
    * 方法描述：新增分类
    */
    int addCategory(Category bi);

    /*
    * YT  2018/10/27 22:04
    * 方法描述：查询分类是否存在
    */
    List<Category> queryCategoryExists(Map <String, String> categoryMap);

    /*
    * YT  2018/9/14 17:08
    * 方法描述：更新分类
    */
    int updateCategory(Map <String, String> categoryMap);

    /*
    * YT  2018/9/14 17:08
    * 方法描述：删除分类
    */
    int delCategory(String categoryId);

    /**
     *QY 2018/10/08 15:43
     *方法描述：根据用户ID查询分类详情
     **/
    Category queryCategoryById(String categoryId);

    /*
    * YT  2018/10/27 22:04
    * 方法描述：根据角色ID和菜单ID查询菜单信息
    */
    List<Menu> queryMenuByRoleIdAndMenuId(@Param("roleId") String roleId,@Param("menuId") String menuId);

    /*
    * YT  2018/10/27 22:05
    * 方法描述：添加分页图片
    */
    int updateCategoryIcon(Category bi);

    List<Category>querySelectCatList();
}
